package com.chenxin.transaction.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

@Mapper
public interface AccountInfoDao {

    /**
     * 张三扣除金额方法
     * @param accountNo
     * @param amount
     * @return
     */
    int subtractAccountBalance(@Param("accountNo") String accountNo, @Param("amount") Double amount);

    /**
     * 张三回滚金额方法
     * @param accountNo
     * @param amount
     * @return
     */
    int addAccountBalance(@Param("accountNo") String accountNo, @Param("amount") Double amount);


    /**
     * 增加某分支事务try执行记录
     * @param localTradeNo 本地事务编号
     * @return
     */
    int addTry(String localTradeNo);


    int addConfirm(String localTradeNo);

    int addCancel(String localTradeNo);

    /**
     * 查询分支事务try是否已执行
     * @param localTradeNo 本地事务编号
     * @return
     */
    int isExistTry(String localTradeNo);
    /**
     * 查询分支事务confirm是否已执行
     * @param localTradeNo 本地事务编号
     * @return
     */
    int isExistConfirm(String localTradeNo);

    /**
     * 查询分支事务cancel是否已执行
     * @param localTradeNo 本地事务编号
     * @return
     */
    int isExistCancel(String localTradeNo);

}
